草庐IT

windbg 常用命令

全部标签

c++ - WinDbg 说在图像列表中找不到 ".dll"

我试图在WinDbg中加载一个dll,但遇到了这个错误。详情如下。使用VisualC++express构建A.dll。将A.pdb和A.dll放在d:\test\目录下。设置图片路径和符号路径为d:\test.sympathgivesOKD:\test尝试使用以下命令加载.reload/fA.dll它给了"A.dll"wasnotfoundintheimagelist.Debuggerwillattempttoload"A.dll"atgivenbase00000000.Pleaseprovidethefullimagename,includingtheextension(i.e.ke

windows - windbg !heap 输出中的 'size' 数字是什么意思?

我在我的DMP文件中看到这样的输出:HeapentriesforSegment00inHeap0015000000150640:00640.00040[01]-busy(40)00150680:00040.01808[01]-busy(1800)00151e88:01808.00210[01]-busy(208)00152098:00210.00228[00]001522c0:00228.00030[01]-busy(22)001522f0:00030.00018[01]-busy(10)00152308:00018.00048[01]-busy(3c)WinDbg文档是这样说的:He

windows - WinDbg - 将字符串参数与内存中的字符串进行比较

我需要将作为参数传递给WinDbg的字符串与内存中的字符串进行比较。如何实现?例如,字符串位于加载的PE中的特定偏移处。所以,我可以通过执行da/c100轻松读取字符串.但是,我如何使用这个字符串,将它与arg1进行比较?,在WinDbg脚本中,使用.if?(和$SPAT(),我猜)我试图读取da的输出命令进入别名或用户定义的寄存器,但我没有成功。 最佳答案 您可以使用as/c将字符串分配给别名:0:012>as/cHello.printf"%ma",061300000:012>.echo@"${Hello}"Helloworld然

windows - 实现 DebugExtensionProvideValue 会破坏 WinDbg 内部状态?

我正在实现DebugExtensionProvideValue在我的扩展中,这样我就可以提供自定义伪寄存器。它在CDB中完美运行,最初在WinDbg中运行良好,但在停止调试并打开一个新的可执行文件后,发生了一些事情,WinDbg最终处于一种奇怪的不可用状态。当您触发问题时,WinDbg将此消息打印到命令窗口:Unabletodelivercallback,3131发生这种情况后,WinDbg似乎会在命令窗口中打印两次所有输出!我的扩展代码很简单:EXTERN_CHRESULTCALLBACKDebugExtensionProvideValue(PDEBUG_CLIENTClient,U

windows - 是否可以在 windbg 调试 session 中将缺失的符号添加到公共(public)符号?

我试图在windbg中使用“dt”命令查看IMAGE_DOS_HEADER结构:0:001>dtntdll!IMAGE_DOS_HEADER**Symbolntdll!IMAGE_DOS_HEADERnotfound**我搜索了一下,发现其他人已经可以做到这一点:MSDNBlogs>Junyoung'sBlog>PortableExecutableFileFormatonMemoryDump0:000>dtIMAGE_DOS_HEADER77c00000ntdll!IMAGE_DOS_HEADER+0x000e_magic:0x5a4d?MZ+0x002e_cblp:0x90+0x00

windows - Windbg 故障转储中的性能计数器

是否可以在windbg中的nativec++应用程序转储中查看线程性能计数器。 最佳答案 不,不可能看到计数器的值,因为它们不存储在C++应用程序地址空间中。您可能从转储中提取的只是线程ID、用户时间、内核时间和运行时间(请参阅!runaway命令)。 关于windows-Windbg故障转储中的性能计数器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2333719/

windows - WinDbg:设置断点时无法解决 xyz!abc::func 处的错误

我已将WinDbg附加到进程。当我使用命令bp设置断点时。我收到以下错误:bpxyz!abc::funcCouldn'tresolveerroratxyz!abc::func怎么了? 最佳答案 当你执行lmmxyz时,你得到了startendmodulename4d6c00004dc59000xyz(exportsymbols)C:\ProgramFiles\pathtoxyz术语exportsymbols告诉我们它只加载了DLL的“公共(public)”函数。要加载私有(private)符号,请执行.sympathc:\path\

java - jstack 结果为 "Windbg Error: WaitForEvent failed"

在Windows7上,我尝试通过执行命令从Java进程获取堆栈跟踪jstack.exe-Fxxx来自另一个Java进程,其中xxx是目标进程的PID。我遇到了错误Errorattachingtoprocess:WindbgError:WaitForEventfailed!知道为什么吗? 最佳答案 您可能需要以管理员身份运行该命令。如果您没有该过程的访问权限,您也会收到相同的错误消息。 关于java-jstack结果为"WindbgError:WaitForEventfailed",我们在

c++ - 以 headless 模式运行 WinDbg

有没有办法在纯headless模式下使用WinDbg?我的用例是我应该能够在不启动WinDbgGUI的情况下为命令行上的小型转储模仿“!analyze-v”命令。 最佳答案 对于Windows调试工具,还有cdb,控制台调试器。要调试故障转储,请使用-z""选项。要立即运行命令,请使用-c"".要将所有内容输出到文件中,您可以使用常用的DOS重定向输出>或使用.logopen打开日志文件.要在分析后退出CDB,请使用q.您想确保符号设置正确,因此请包含.symfix;.reload.我更喜欢使用.symfix在命令中而不是-y,所以

c# - 在 WinDbg 中调试 C# 应用程序

我正在尝试在没有VisualStudio的系统上调试用C#编写的应用程序。应用程序没有崩溃......但我需要确定某些变量的值,以及是否访问代码的某些部分,基于我无法在VisualStudio所在的同一位置访问的驱动程序。我在虚拟机中运行此测试环境,无法访问互联网。我一直无法安装符号文件...但到目前为止这无关紧要。我一直在使用附加到此应用程序的WinDbg对驱动程序(c/c++)进行故障排除。我希望也能够从C#向WinDbg发送调试消息。System.Diagnostics.Debug.Write("helloworld\n");没有出现...我不知道是否相关,但我在添加Debug.